package com.zsrt.day20170410.pm;

import java.util.Scanner;

import org.junit.Test;

import com.zsrt.utils.ArrayUtil;
import com.zsrt.utils.SortUtil;

/**
*@author jzh
*@创建时间 2017年4月10日下午6:26:42
*类说明：
*/
public class IntCRUD {
	
	private int[] arrays=new int[]{21,40,33,22,67};
	private Scanner in=null;
	
	
	@Test
	public void checkStudentByNameTest(){
		System.out.println("输入查找的数字：");
		in=new Scanner(System.in);
		int number = in.nextInt();
		in.close();
		int xb = checkStudentByName(arrays,number);
		if(xb<0){
			System.out.println("查找的数字不存在");
		}else{
			System.out.println("查找的数字"+number+"在第"+xb+"个");	
		}
	}
	/**
	 * 查找
	 * @param array 待查找的数组
	 * @param a     查找的数
	 * @return      如果存在，返回下标，不存在，返回-1
	 */
	public int checkStudentByName(int[] array,int a) {
		int  xb=-1;
		for(int i=0;i<array.length;i++){
        	if(a==array[i]){
        		return i;
        	}
        }
		return xb;
	}
	/**
	 * 增加
	 */
	@Test
	public void addTest(){
		System.out.println("输入增加的数字：");
		in=new Scanner(System.in);
		int number = in.nextInt();
		in.close();
		add(arrays,number);
		System.out.println("增加后的数组是：");
		ArrayUtil.printArray(arrays);
		System.out.println();
		System.out.println("排序后的数组是：");
		SortUtil.quickSort(arrays, 0, arrays.length-1);
		ArrayUtil.printArray(arrays);
	}
	public void add(int[] array,int number){
		
		int xb = checkStudentByName(array,number);
		if(xb>0){
			System.out.println("增加的数字已存在");
		}else{
			int[] newArray=new int[array.length+1];
			for(int i=0;i<array.length;i++){
				newArray[i]=array[i];
			}
			newArray[array.length]=number;
			arrays=newArray;
			
		}
	}
	/**
	 * 更改
	 */
	@Test
	public void updateTest(){
		System.out.println("输入要更改的数字：");
		in=new Scanner(System.in);
		int oldNumber = in.nextInt();
		System.out.println("更改为：");
		in=new Scanner(System.in);
		int newNumber = in.nextInt();
		in.close();
		update(arrays,oldNumber,newNumber);
		System.out.println("更改后的数组是：");
		ArrayUtil.printArray(arrays);
		System.out.println();
		System.out.println("排序后的数组是：");
		SortUtil.quickSort(arrays, 0, arrays.length-1);
		ArrayUtil.printArray(arrays);
	}
	public void update(int[] array,int oldNumber,int newNumber){
		int xb = checkStudentByName(arrays,oldNumber);
		if(xb<0){
			System.out.println("更改的数字不存在");
		}else{
			System.out.println("更改的数字"+oldNumber+"在第"+xb+"个");
			array[xb]=newNumber;
		}
	}
	/**
	 * 删除
	 */
	@Test
	public void deleteTest(){
		System.out.println("输入要删除的数字：");
		in=new Scanner(System.in);
		int number = in.nextInt();
		in.close();
		delete(arrays,number);
		
	}
	public void delete(int[] array,int number){
		int xb = checkStudentByName(arrays,number);
		if(xb<0){
			System.out.println("删除的数字不存在");
			return ;
		}else{
			System.out.println("删除的数字"+number+"在第"+xb+"个");
			int[] newArray=new int[array.length-1];
		    for(int i=0;i<xb;i++){
		    	newArray[i]=array[i];
		    }
		    for(int i=xb+1;i<array.length;i++){
		    	newArray[i-1]=array[i];
		    }
		    arrays=newArray;
		    System.out.println("删除后的数组是：");
			ArrayUtil.printArray(arrays);
		}
	}


}
